package _22_jvm;

import com.baomidou.mybatisplus.autoconfigure.MybatisPlusProperties;
import org.junit.Test;

import java.net.URL;

public class ClassLoaderTest {

    /**
     * 启动类加载器 搜索的路径
     */
    @Test
    public void test001(){
        URL[] urls = sun.misc.Launcher.getBootstrapClassPath().getURLs();
        for (int i = 0; i < urls.length; i++) {
            System.out.println(urls[i].toExternalForm());
        }
    }

    /**
     * 类加载器的 层级结构
     */
    @Test
    public void test002() {
        // 应用程序 类加载器
        System.out.println(ClassLoaderTest.class.getClassLoader());
        // 扩展 类加载器
        System.out.println(ClassLoaderTest.class.getClassLoader().getParent());
        // 启动 类加载器
        System.out.println(ClassLoaderTest.class.getClassLoader().getParent().getParent());
    }

    /**
     * 不同类加载器 加载的 不同路径 下的 class对象
     */
    @Test
    public void test003() {
        // 启动 类加载器
        System.out.println(String.class.getClassLoader());
        // 应用 类加载器
        System.out.println(MybatisPlusProperties.class.getClassLoader());
    }

}
